﻿using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace dacli.modelos.dao
{
    public class UsuariosDAO : EntidadDao
    {
        public Usuarios usuario { get; set; }

        public Usuarios asignarId(long id)
        {
            this.consultar("id=" + id);
            return this.usuario;
        }
        public UsuariosDAO(Usuarios usuario)
            : base("usuarios")
        {
            this.usuario = (Usuarios)usuario.Clone();
        }
        public UsuariosDAO()
            : base("usuarios")
        {
            
        }

        public  override long incluir()
        {
            string sql = "INSERT INTO " + this.tabla + " (nombre, alias, clave) values" +
                        "('" + usuario.nombre + "','" + usuario.alias + "','" + usuario.clave + "')";
            return conexion.ejecutar(sql);
        }

        public override long modificar()
        {
            string sql = "UPDATE " + this.tabla + " SET "
                        + "nombre ='" + usuario.nombre + "', alias = '" + usuario.alias + "', clave = '" + usuario.clave + "' "
                        + "WHERE id =" + usuario.id;
            return conexion.ejecutar(sql);            
        }

        public override long eliminar()
        {
            string sql = "DELETE FROM " + this.tabla + " WHERE "
                        + "id =" + usuario.id;
            return conexion.ejecutar(sql);            
        }

        public override bool consultar(string filtro)
        {
            string sql = "SELECT * FROM " + this.tabla + " WHERE "
            + filtro;
            SqlDataReader reader = conexion.consultar(sql);
            if (reader.Read()) {
                this.usuario = new Usuarios();
                this.usuario.id = reader.GetInt32(0);
                this.usuario.nombre = reader.GetValue(1).ToString();
                this.usuario.alias = reader.GetValue(2).ToString();
                this.usuario.clave = reader.GetValue(3).ToString();
                reader.Close();
                return true;
            }
            return false;
        }
    }
}
